package com.fbty.mt.service;

import java.util.List;
import java.util.Map;

import com.fbty.base.domain.Page;
import com.fbty.mt.domain.ErrorIpInfo;
import com.fbty.mt.domain.IpInfo;
import com.fbty.mt.domain.OnlyIpInfo;
import com.fbty.mt.domain.User;

public interface IpService {
	/**
	 * 保存共享类ip
	 * @param ipInfo
	 */
	public void saveIpInfo(IpInfo ipInfo);
	
	public void saveOnlyIpInfo(OnlyIpInfo onlyIpInfo);
	/**
	 * 保存共享类ip
	 * @param ipInfo
	 */
	public void saveIpInfos(List<IpInfo> ipInfos);
	/**
	 * 保存独享类ip
	 * @param ipInfo
	 */
	public void saveOnlyIpInfos(List<OnlyIpInfo> ipInfos);
	/**
	 * 保存错误的独享类ip
	 * @param ipInfo
	 */
	public void saveErrorIpInfos(List<ErrorIpInfo> ipInfos);
	/**
	 * 分页显示共享类ip
	 * @param ipInfo
	 */
	public Page pageIpInsos(Integer pageNo,Integer pageSize,boolean flag,Map<String,String> parms);
	/**
	 * 一次取出共享类ip
	 * @param ipInfo
	 */
	public List<IpInfo> getAllIpInfoes();
	/**
	 * 分页显示我的代理
	 * @param pageNo
	 * @param parms
	 * @return
	 */
	public Page pageMyIpInfos(Integer pageNo,Integer pageSize,Map parms);
	/**
	 * 批量删除用户已代理的ip
	 * @param params
	 */
	public void deleteForMyIp(int[] cid);
	/**
	 * 得到包月用户这个在有效时间内还有多少条可以用
	 * @return
	 */
	public String getMsg(Integer uid);
	/**
	 * 分页显示独享类ip
	 * @param ipInfo
	 */
	public Page pageOnlyIpInsoes(Integer pageNo,Integer pageSize,boolean flag,Map<String,Object> parms);
	
	public Page pageOnlyIpInfos(Integer pageNo,Integer pageSize,boolean flag,Map<String,Object> parms);
	/**
	 * 批量删除共享类ip
	 * @param ids
	 */
	public void deleteInfo(String ids);
	/**
	 * 批量删除独享类ip
	 * @param ids
	 */
	public void removeOnlyInfo(String ids) ;
	public void deleteOnlyInfo(int[] cid) ;
	
	public OnlyIpInfo findOnlyById(int id) throws Exception;
	
	public void updateOnlyIp(OnlyIpInfo onlyIp) throws Exception;
	/**
	 * 批量提取ip
	 */
	public Map<String, Integer> saveManyBuy(Integer num,User user);
	
	/**
	 * 
	 * Description: <br> 
	 * 根据ID获取IP详细信息
	 * @param id
	 * @return
	 */
	public IpInfo findIpInfoById(Integer id);
	/**
	 * 
	 * Description: <br> 
	 * 根据ID获取IP详细信息
	 * @param id
	 * @return
	 */
	public OnlyIpInfo findOnlyIpInfoById(Integer id);
	/**
	 * 
	 * Description: <br> 
	 * 根据ID获取IP详细信息
	 * @param id
	 * @return
	 */
	public void modifyIpInfo(OnlyIpInfo info);
	
	/**
	 * 
	 * Description: <br>修改ip信息
	 * @param info
	 */
	public void modifyIpInfo(IpInfo info);
	
	/**
	 * 批量购买独享IP，用于购物车的显示
	 * @param ids
	 * @return
	 */
	public List<OnlyIpInfo> buyBatch(List<String> ids);
}
